import json

import pygal_maps_world.maps
from pygal.style import RotateStyle
from c_16.country_codes import get_country_code

filename = 'D:\\Python\\projects\\python_01\\files\\population_data.json'
with open(filename) as f:
    pop_data = json.load(f)

# 创建一个包含人口数量的字典
cc_populations = {}
for pop_dict in pop_data:
    if pop_dict['Year'] == '2010':
        country = pop_dict['Country Name']
        population = int(float(pop_dict['Value']))
        code = get_country_code(country)
        if code:
            cc_populations[code] = population
            # print(cc_populations[code])
        # else:
        #     # ERROR表示没有code
        #     print('ERROR - ' + country_name)
        # 根据人口数量将所有的国家分成三组
cc_pop1,cc_pop2,cc_pop3 = {},{},{}
for cc,pop in cc_populations.items():
    if pop < 10000000:
        cc_pop1[cc] = pop
    elif pop < 1000000000:
        cc_pop2[cc] = pop
    else:
        cc_pop3[cc] = pop

        # 看看每组分别包含多少个国家
        # print(len(cc_pop1), len(cc_pop2), len(cc_pop3))

wm_style = RotateStyle('#336699')
# wm = pygal.maps.world.maps(style = vm_style)
wm = pygal_maps_world.maps.World(style = wm_style)
wm.title = 'World Population in 2010, by Country'
wm.add('0-10m',cc_pop1)
wm.add('10m-1bn',cc_pop2)
wm.add('>1bn',cc_pop3)
wm.render_to_file('world_population.svg')